package modelo.moviles.balas;

import modelo.*;
import modelo.moviles.Movil;


public abstract class Bala extends Movil {

	protected int intensidad;
	protected boolean enemiga;
	
	/* constructor con parametro */
	public Bala( Nivel nuevoNivel){
		super(nuevoNivel);
	}
	
	/* "Le aviso al otro movil que se encontro con una Bala" */
	public void encuentroCon (Encontrable otroMovil) {
		otroMovil.encuentroConBala (this);
	}
	
	
	/* "Manejo el encuentro entre dos balas" */
	public void encuentroConBala( Encontrable encontrable){
		Bala otraBala = (Bala)encontrable;
		if (this.esEnemiga() != otraBala.esEnemiga()){
			otraBala.estallar();
			this.estallar();
		}
	}

	/* "La nave maneja el encuentro con la Bala " */
	public void encuentroConNave (Encontrable unaNave){
		unaNave.encuentroConBala(this);
	}

	
	public void encuentroConAlgo42(Encontrable movil) {
		movil.encuentroConBala(this);
		
	}

	/* "Devuelve true si la bala precisa un objetivo al que apuntar" */ 
	public boolean precisaObjetivo(){
		return false;
	}

	
	/* "Establece que la bala es de una nave enemiga" */
	public void setEnemiga( boolean valor){
		enemiga = valor;
	}
	

	/* "Devuelve si una bala es enemiga" */ 
	public boolean esEnemiga(){
		return enemiga;
	}

	public int getIntensidad() {
		return intensidad;
	}

	public void setIntensidad(int intensidad) {
		this.intensidad = intensidad;
	}

}
